package com.coyote.common.base;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;

import java.io.Serializable;


@Getter
@Schema(name = "PageParam", description = "通用分页查询参数")
public class PageParam implements Serializable {
    private static final long serialVersionUID = 1L;

    @Schema(description = "页码,默认为1", example = "1")
    private Integer page;

    @Schema(description = "分页大小,默认为10", example = "10")
    private Integer pageSize;

    public void setPage(Integer page) {
        // 如果传入的 page 不为空并且大于等于 1，则将其设为 page 的值，否则设为 1
        this.page = (page != null && page >= PageConstant.DEFAULT_PAGE_INDEX) ? page : PageConstant.DEFAULT_PAGE_INDEX;
    }

    public void setPageSize(Integer pageSize) {
        // 如果传入的 pageSize 为空或小于 1，则设为 10
        // 如果传入的 pageSize 大于 5000，则设为 5000，否则设为传入的 pageSize 的值
        this.pageSize = pageSize == null || pageSize < PageConstant.DEFAULT_PAGE_INDEX ? PageConstant.DEFAULT_PAGE_SIZE : Math.min(pageSize, PageConstant.PAGE_MAX_SIZE);
    }

}
